<html><head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8"><title>Migration from PureBasic 5.20 LTS to 5.40 LTS</title></head>
<body bgcolor="#EFF1F0" link="#3A3966" vlink="#000000" alink="#000000">
<font face="Verdana, sans-serif" size="2"><p align="center"><b><font size="5">Migration from PureBasic 5.20 LTS to 5.40 LTS</font></b></p>

<p><b>Billboard library</b></p><blockquote>





AddBillboard(): code change 
 
<pre><font face="Courier New, Courier, mono"size="2">  <font color="#3A3966">; Old</font>
<font color="#3A3966">  AddBillboard</font>(Billboard, BillboardGroup, x, y, z)

  <font color="#3A3966">; New</font>
  Billboard =<font color="#3A3966"> AddBillboard</font>(BillboardGroup, x, y, z)
</font></pre>

</blockquote>
<p><b>Cipher library</b></p><blockquote>





ExamineMD5Fingerprint(): code change 
 
<pre><font face="Courier New, Courier, mono"size="2">  <font color="#3A3966">; Old</font>
<font color="#3A3966">  ExamineMD5Fingerprint</font>(<font color="#924B72">#FingerPrint</font>)

  <font color="#3A3966">; New</font>
<font color="#3A3966">  UseMD5FingerPrint</font>()  
<font color="#3A3966">  StartFingerprint</font>(<font color="#924B72">#FingerPrint</font>, <font color="#924B72">#PB_Cipher_MD5</font>)
</font></pre>

<br>

ExamineSHA1Fingerprint(): code change 
 
<pre><font face="Courier New, Courier, mono"size="2">  <font color="#3A3966">; Old</font>
<font color="#3A3966">  ExamineSHA1Fingerprint</font>(<font color="#924B72">#FingerPrint</font>)
  
  <font color="#3A3966">; New</font>
<font color="#3A3966">  UseSHA1FingerPrint</font>()
<font color="#3A3966">  StartFingerprint</font>(<font color="#924B72">#FingerPrint</font>, <font color="#924B72">#PB_Cipher_SHA1</font>)
</font></pre>

<br>

MD5FileFingerprint(): code change 
 
<pre><font face="Courier New, Courier, mono"size="2">  <font color="#3A3966">; Old</font>
  Result$ =<font color="#3A3966"> MD5FileFingerprint</font>(Filename$)
  
  <font color="#3A3966">; New</font>
<font color="#3A3966">  UseMD5FingerPrint</font>()
  Result$ =<font color="#3A3966"> FileFingerprint</font>(Filename$, <font color="#924B72">#PB_Cipher_MD5</font>)
</font></pre>

<br>

MD5Fingerprint(): code change 
 
<pre><font face="Courier New, Courier, mono"size="2">  <font color="#3A3966">; Old</font>
  Result$ =<font color="#3A3966"> MD5Fingerprint</font>(*Buffer, Size)
  
  <font color="#3A3966">; New</font>
<font color="#3A3966">  UseMD5FingerPrint</font>()
  Result$ =<font color="#3A3966"> Fingerprint</font>(*Buffer, Size, <font color="#924B72">#PB_Cipher_MD5</font>)
</font></pre>

<br>

SHA1FileFingerprint(): code change 
 
<pre><font face="Courier New, Courier, mono"size="2">  <font color="#3A3966">; Old</font>
  Result$ =<font color="#3A3966"> SHA1FileFingerprint</font>(Filename$)
  
  <font color="#3A3966">; New</font>
<font color="#3A3966">  UseSHA1FingerPrint</font>()
  Result$ =<font color="#3A3966"> FileFingerprint</font>(Filename$, <font color="#924B72">#PB_Cipher_SHA1</font>)
</font></pre>

<br>

SHA1Fingerprint(): code change 
 
<pre><font face="Courier New, Courier, mono"size="2">  <font color="#3A3966">; Old</font>
  Result$ =<font color="#3A3966"> SHA1Fingerprint</font>(*Buffer, Size)
  
  <font color="#3A3966">; New</font>
<font color="#3A3966">  UseSHA1FingerPrint</font>()
  Result$ =<font color="#3A3966"> Fingerprint</font>(*Buffer, Size, <font color="#924B72">#PB_Cipher_SHA1</font>)
</font></pre>

<br>

CRC32FileFingerprint(): code change 
 
<pre><font face="Courier New, Courier, mono"size="2">  <font color="#3A3966">; Old</font>
  Result =<font color="#3A3966"> CRC32FileFingerprint</font>(Filename$)
  
  <font color="#3A3966">; New</font>
<font color="#3A3966">  UseCR32FingerPrint</font>()
  Result.l =<font color="#3A3966"> Val</font>("$"+<font color="#3A3966">FileFingerprint</font>(Filename$, <font color="#924B72">#PB_Cipher_CRC32</font>))
</font></pre>

<br>

CRC32Fingerprint(): code change 
 
<pre><font face="Courier New, Courier, mono"size="2">  <font color="#3A3966">; Old</font>
  Result =<font color="#3A3966"> CRC32Fingerprint</font>(*Buffer, Size)
  
  <font color="#3A3966">; New</font>
<font color="#3A3966">  UseCR32FingerPrint</font>()
  Result.l =<font color="#3A3966"> Val</font>("$"+<font color="#3A3966">Fingerprint</font>(*Buffer, Size, <font color="#924B72">#PB_Cipher_CRC32</font>))
</font></pre>

<br>

NextFingerprint(): rename only 
 
<pre><font face="Courier New, Courier, mono"size="2">  <font color="#3A3966">; Old</font>
<font color="#3A3966">  NextFingerprint</font>(<font color="#924B72">#FingerPrint</font>, *Buffer, Size)
  
  <font color="#3A3966">; New</font>
<font color="#3A3966">  AddFingerprintBuffer</font>(<font color="#924B72">#FingerPrint</font>, *Buffer, Size)
</font></pre>


</blockquote>
<p><b>Mail library</b></p><blockquote>


<br>

SendMail(): code change if the 'Asynchronous' parameter was used 
 
<pre><font face="Courier New, Courier, mono"size="2">  <font color="#3A3966">; Old</font>
<font color="#3A3966">  SendMail</font>(<font color="#924B72">#Mail</font>, Smtp$, Port, 1)
  
  <font color="#3A3966">; New</font>
<font color="#3A3966">  SendMail</font>(<font color="#924B72">#Mail</font>, Smtp$, Port, <font color="#924B72">#PB_Mail_Asynchronous</font>)
</font></pre>

<br>
</blockquote>
<p><b>Packer library</b></p><blockquote>


<br>

RemovePackFile(): removed <br>
PackerEntrySize(): <font color="#924B72">#PB_Packer_CompressedSize</font> support removed for ZIP and 7z archives <br>

<br>
</blockquote>
<p><b>XML library</b></p><blockquote>


<br>

CreateXMLNode(): code change 
 
<pre><font face="Courier New, Courier, mono"size="2">  <font color="#3A3966">; Old</font>
  Node =<font color="#3A3966"> CreateXMLNode</font>(ParentNode)
<font color="#3A3966">  SetXMLNodeName</font>(Node, "Name")
  
  <font color="#3A3966">; New</font>
  Node =<font color="#3A3966"> CreateXMLNode</font>(ParentNode, "Name")
</font></pre>

<br>
</blockquote>
<p><b>Screen library</b></p><blockquote>


<br>

AvailableScreenMemory() removed as new API doesn't support this info anymore. It was mostly returning '0' anyway. 

 

<br>
</blockquote>
<p><b>Window library</b></p><blockquote>


<br>
<font color="#924B72">#PB_Event_SizeWindow</font> and <font color="#924B72">#PB_Event_MoveWindow</font> are no more realtime on Windows, use BindEvent() to get real time update. 


 


<br>
</blockquote>
<p><b>Engine3D library</b></p><blockquote>


<br>

WorldCollisionAppliedImpulse() now returns a float about the applied impulse. GetX/Y/Z() are no more supported. 


 


<br>
</blockquote>
<p><b>Various</b></p><blockquote>


<br>

DataSection label within Procedure are now local labels. <br>
ASM local label prefix has been changed from "l_" to "ll_", to avoid possible clash with main labels. <br>
<font color="#924B72">#PB_LinkedList</font> constant has been renamed to <font color="#924B72">#PB_List</font> for better consistancy <br>

<br>
<br>
<br>
</body></html>